// import 'dart:convert';
// import 'dart:io';
// import 'dart:ui';
// import 'dart:ui' as ui;
//
// import 'package:dio/dio.dart';
// import 'package:flutter/cupertino.dart';
// import 'package:flutter/foundation.dart';
// import 'package:flutter/material.dart';
// import 'package:wanandroid_flutter/px_model.dart';
//
// import 'asperct_raio_image.dart';
//
// class HomePage extends StatefulWidget {
//   HomePage({Key key}) : super(key: key);
//
//   @override
//   _HomePageState createState() => _HomePageState();
// }
//
// class _HomePageState extends State<HomePage> {
//   TextEditingController _textEditingController;
//
//   // HttpClient mHttpClient;
//
//   // Future<HttpClientRequest> httpData;
//   Future httpData;
//   // Dio _dio;
//
//   @override
//   void initState() {
//     // _dio = Dio();
//     // _dio.options.headers.addAll({
//     //   'user-agent':
//     //       'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
//     //   'accept':
//     //       'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
//     //   'Host': '500px.com.cn',
//     //   'Origin': '500px.com.cn',
//     //   'Sec-Fetch-Dest': 'document',
//     //   'Sec-Fetch-Mode': 'navigate',
//     //   'Sec-Fetch-Site': 'none',
//     //   'Accept-Encoding': 'gzip, deflate, br',
//     // });
//     // _dio.interceptors
//     //     .add(InterceptorsWrapper(onRequest: (RequestOptions options) {
//     //   print('监听onRequest： ${options.uri}');
//     //   print('监听onRequest： ${options.headers.toString()}');
//     // }, onResponse: (Response e) {
//     //   print('监听onResponse： ${e.toString()}');
//     // }, onError: (DioError e) {
//     //   print('监听onError： ${e.toString()}');
//     // }));
//     _textEditingController = TextEditingController();
//
//     // if (kIsWeb) {
//     //   _dio.httpClientAdapter = BrowserHttpClientAdapter();
//       // shelf_io.serve(
//       //   proxyHandler("https://dart.dev"),
//       //   'localhost',
//       //   8080,
//       // ).then((value) {
//       //
//       // });
//     // }
//
//     // mHttpClient = HttpClient(context: SecurityContext.defaultContext);
//     super.initState();
//   }
//
//   @override
//   void dispose() {
//     _textEditingController?.dispose();
//     super.dispose();
//   }
//
//   @override
//   Widget build(BuildContext context) {
//     return Scaffold(
//       body: Container(
//         child: ListView(
//           children: [
//             TextField(
//               controller: _textEditingController,
//               decoration: InputDecoration(labelText: '请输入需要解析的网址'),
//             ),
//             Image.network(
//               'http://localhost:4040/500px1018672025.jpg!p3',
//                 headers:{'HOST':'img.500px.me'},
//                 errorBuilder: _errorbuild
//             ),
//             Image.network('http://localhost:4040/500px1018672025.jpg!p5', errorBuilder: _errorbuild,),
//             // Image.network('https://dss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3238317745,514710292&fm=26&gp=0.jpg'),
//             // FutureBuilder<Response>(
//             //         future: httpData,
//             //         // stream: httpData.asStream(),
//             //         builder: (BuildContext context,
//             //             AsyncSnapshot<Response> snapshot) {
//             //           if (snapshot.hasError) {
//             //             print(snapshot.error.toString());
//             //             return Container(
//             //               child: Center(
//             //                 child: Text('${snapshot.error.toString()}'),
//             //               ),
//             //             );
//             //           }
//             //           switch (snapshot.connectionState) {
//             //             case ConnectionState.active:
//             //               print('ConnectionState: ${ConnectionState.active}');
//             //               break;
//             //             case ConnectionState.none:
//             //               return Container(
//             //                 child: Center(
//             //                   child: Text('等待请求数据'),
//             //                 ),
//             //               );
//             //               break;
//             //             case ConnectionState.waiting:
//             //               return Container(
//             //                 child: Center(
//             //                   child: CircularProgressIndicator(),
//             //                 ),
//             //               );
//             //               break;
//             //             case ConnectionState.done:
//             //               // print('ConnectionState: ${ConnectionState.done}');
//             //               if (snapshot.hasData) {
//             //                 // print(snapshot.data.headers.toString());
//             //                 // print(snapshot.data.data);
//             //                 // snapshot.data.close().then((value) {
//             //                 //   value.transform(utf8.decoder).join().then((text) {
//             //                 //     print(text);
//             //                 //   });
//             //                 // });
//             //                 PxModel pxModel =
//             //                     PxModel().fromJson(snapshot.data.data);
//             //                 List<String> _images = [];
//             //                 pxModel.url.toJson().forEach((key, value) {
//             //                   if (null != value && value != '') {
//             //                     if (key != 'baseUrl' && key != 'id') {
//             //                       _images.add(value);
//             //                     }
//             //                   }
//             //                 });
//             //                 return GridView.builder(
//             //                   padding: EdgeInsets.symmetric(
//             //                       horizontal: 8, vertical: 8),
//             //                   itemBuilder: (BuildContext context, int index) {
//             //                     return Card(
//             //                       shape: RoundedRectangleBorder(
//             //                         borderRadius:
//             //                             BorderRadiusDirectional.circular(8),
//             //                       ),
//             //                       child: AsperctRaioImage.network(
//             //                         _images[index],
//             //                         builder: _buildImage,
//             //                       ),
//             //                     );
//             //                   },
//             //                   shrinkWrap: true,
//             //                   itemCount: _images.length,
//             //                   gridDelegate:
//             //                       SliverGridDelegateWithFixedCrossAxisCount(
//             //                           crossAxisCount: 3,
//             //                           crossAxisSpacing: 10,
//             //                           mainAxisSpacing: 10),
//             //                 );
//             //               }
//             //               break;
//             //           }
//             //           return Container();
//             //         },
//             //       )
//           ],
//         ),
//       ),
//       floatingActionButton: FloatingActionButton(
//         child: Text('解析'),
//         onPressed: kIsWeb
//             ? () {
//                 setState(() {});
//               }
//             : () {
//                 // httpData = mHttpClient.getUrl(Uri(path: 'http://www.baidu.com'));
//                 // setState(() {
//                 //   httpData = mHttpClient.getUrl(Uri.parse("https://500px.com.cn/community/photo-details/500px1023321498/"));
//                 // });
//
//                 var text = _textEditingController.text;
//                 if (text.contains('500px.com.cn')) {
//                 //   var s = text.split('/');
//                 //   setState(() {
//                 //     // httpData = _dio.get(
//                 //     //     'https://500px.com.cn/community/photo-details/500px1023321498/');
//                 //     // httpData = _dio.get(
//                 //     //     'https://500px.com.cn/community/photo-details/500px1023321498?type=json&imgsize=p1%2Cp2%2Cp5%2Cp6');
//                 //     httpData = _dio.download(
//                 //         'https://500px.com.cn/community/photo-details/${s[s.length - 1]}',
//                 //         queryParameters: {
//                 //           'type': 'json',
//                 //           'imgsize': 'p1,p2,p3,p4,p5,p6'
//                 //         },
//                 //         options: Options(
//                 //           method: 'GET',
//                 //           responseType: ResponseType.json,
//                 //         ));
//                 //   });
//                 } else {
//                   showDialog(
//                       context: context,
//                       builder: (_) => AlertDialog(
//                             title: Text('解析错误'),
//                             content: Text('暂不支持的平台， 请联系开发者进行有偿开发'),
//                             actions: [
//                               RaisedButton(
//                                 onPressed: () {
//                                   Navigator.pop(context);
//                                 },
//                                 child: Text('确定'),
//                               )
//                             ],
//                           ));
//                 }
//
//                 // httpData = mHttpClient.get('www.baidu.com', 80, '');
//               },
//       ),
//     );
//   }
//
//   Widget _buildImage(
//       BuildContext context, AsyncSnapshot<ui.Image> snapshot, String url) {
//     switch (snapshot.connectionState) {
//       case ConnectionState.none:
//         print('ConnectionState.none');
//         break;
//       case ConnectionState.waiting:
//         print('ConnectionState.waiting');
//         break;
//       case ConnectionState.active:
//         print('ConnectionState.active');
//         break;
//       case ConnectionState.done:
//         print('ConnectionState.done');
//         break;
//     }
//     if (snapshot.hasError) {
//       return Container(color:Colors.red,child: Text(snapshot.error));
//     }
//     if (snapshot.hasData) {
//       return GestureDetector(
//         onTap: (){
//           // _dio.get(url).then((response) {
//           //   print(response.toString());
//           // });
//         },
//         onLongPress: () async {
//           var isDownload = await showDialog(
//               context: context,
//               barrierDismissible: false,
//               builder: (_) => AlertDialog(
//                     title: Text('下载'),
//                     content: Text('是否下载该图片到当前程序目录'),
//                     actions: [
//                       RaisedButton(
//                         onPressed: () => Navigator.pop(_, true),
//                         child: Text('确定'),
//                       ),
//                       RaisedButton(
//                         onPressed: () => Navigator.pop(_, false),
//                         child: Text('取消'),
//                       )
//                     ],
//                   ));
//           if (isDownload) {
//             try {
//               // var file = File('\\${url.split('/').last}.jpg');
//               // var file = File('${Directory.current}\\${url.split('/').last}.jpg');
//
//               ///
//               var image = snapshot.data;
//               var file = File(
//                   '${url.split('/').last.split('.').first}-${image.width.toInt()}-${image.height.toInt()}.jpg');
//               print(file.absolute);
//               if (!file.existsSync()) {
//                 print('url:$url');
//                 Dio()
//                     .download(url, file.absolute.path,
//                         options: Options(
//                           method: 'GET',
//                           contentType: 'image/jpeg',
//                           followRedirects: true,
//                           responseType: ResponseType.bytes,
//                           validateStatus: (status) {
//                             return status < 500;
//                           },
//                         ))
//                     .whenComplete(() => print('下载完成'));
//                 // file.create().then((file) async{
//                 //
//                 //   // var imageFuture = await _dio.get(url);
//                 //   // print(imageFuture.data);
//                 //   // _dio.get(url).then((value) => print(value.toString()));
//                 //   // snapshot.data.toByteData().then((data) {
//                 //   //   // file.openWrite().writeAll(data.buffer.asByteData());
//                 //   //   file.openWrite().write(data);
//                 //   // });
//                 // });
//               }
//             } catch (e) {
//               print(e);
//             }
//             // var url = _images[index];
//             // _dio.get(url).then((value) {
//             //   print(value.toString());
//             //   print(value.request.path);
//             //   print(value.statusCode);
//             //   var file = File(
//             //       './${value.realUri.path.split('/').last}');
//             //   if (!file.existsSync()) {
//             //     file.openWrite().writeAll(value.data);
//             //   }
//             // });
//           }
//         },
//         child: Container(
//           decoration: BoxDecoration(
//               color: Colors.transparent,
//               image: DecorationImage(
//                 image: NetworkImage(url),
//               )),
//           child: Align(
//             alignment: Alignment.bottomCenter,
//             child: Container(
//               width: double.infinity,
//               padding: EdgeInsets.symmetric(horizontal: 8, vertical: 4),
//               decoration: BoxDecoration(
//                 color: Colors.black45,
//                 borderRadius: BorderRadiusDirectional.vertical(
//                     bottom: Radius.circular(8)),
//               ),
//               child: Text(
//                 '${snapshot.data.width.toInt()}*${snapshot.data.height.toInt()}',
//                 style: TextStyle(color: Colors.white),
//               ),
//             ),
//           ),
//         ),
//       );
//     } else {
//       return Container(child: Center(child: CircularProgressIndicator()));
//     }
//   }
//
//   Widget _errorbuild(BuildContext context, Object error, StackTrace stackTrace) {
//     print(stackTrace);
//     return Text(error.toString());
//   }
// }
